#ifndef ROBOT_STATE_H
#define ROBOT_STATE_H

// 必要头文件：QVector3D 用于存储3D位置/速度（QtGui模块）
#include <QtGui/QVector3D>

/**
 * @brief 机器人状态结构体（存储机器人运行时核心状态）
 * 包含故障状态、运动状态、末端位置/速度等关键信息
 */
struct RobotState {
    // --------------------------
    // 1. 结构体成员变量（可根据项目实际逻辑调整）
    // --------------------------
    bool is_fault = false;          // 故障标记：true=故障，false=正常
    bool is_moving = false;         // 运动标记：true=正在运动，false=静止
    QVector3D end_position;         // 末端执行器位置（x/y/z 坐标）
    QVector3D end_velocity;         // 末端执行器速度（x/y/z 方向速度）
    qint64 timestamp = 0;           // 状态时间戳（毫秒级，用于同步）
    int error_code = 0;             // 错误码：0=无错误，非0=对应错误类型（可扩展）

    // --------------------------
    // 2. 成员函数声明（修复“无函数声明”错误）
    // --------------------------
    /**
     * @brief 重置状态到初始值
     */
    void reset();

    /**
     * @brief 拷贝当前状态（返回新的状态副本）
     * @return RobotState - 当前状态的拷贝
     */
    RobotState copy() const;

    /**
     * @brief 判断机器人是否处于故障状态
     * @return bool - true=故障，false=正常
     */
    bool isFault() const;

    /**
     * @brief 判断机器人是否处于运动状态
     * @return bool - true=运动中，false=静止
     */
    bool isMoving() const;
};

#endif // ROBOT_STATE_H